// @flow
import React, { Component } from 'react'
import styles from './MaintenanceGrid.css'
import MaintenanceActions from './MaintenanceActions'
import AgGrid from 'components/AgGrid'
import moment from 'moment'
import Pagination from 'components/Pagination'

type Props = {
  rowData: Array<Object>,
  refreshMaintenances: Function,
  history: Object,
  total: number,
  current: number,
  pageSize: number
}
type States = {
  columnDefs: Array<Object>
}
class Maintenance extends Component {
  props: Props
  state: States
  constructor (props: Props) {
    super(props)
    this.state = {
      columnDefs: [
        {
          headerName: '名称',
          field: 'eventName',
          cellStyle: {
            padding: '8px'
          }
        },
        // {
        //   headerName: '类型',
        //   field: 'eventType',
        //   cellStyle: {
        //     padding: '8px'
        //   }
        // },
        {
          headerName: '设备编号',
          field: 'deviceNo',
          cellStyle: {
            padding: '8px'
          }
        }, {
          headerName: '设备名称',
          field: 'deviceName',
          cellStyle: {
            padding: '8px'
          }
        }, {
          headerName: '开始时间',
          field: 'startTime',
          cellStyle: {
            padding: '8px'
          },
          cellRenderer: (params) => {
            return moment(params.data.startTime, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD HH:mm:ss')
          }
        },
        {
          headerName: '结束时间',
          field: 'endTime',
          cellStyle: {
            padding: '8px'
          },
          cellRenderer: (params) => {
            return moment(params.data.endTime, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD HH:mm:ss')
          }
        },
        {
          headerName: '负责人',
          field: 'owner',
          cellStyle: {
            padding: '8px'
          }
        },
        {
          headerName: '处理方法',
          field: 'dealMethod',
          cellStyle: {
            padding: '8px'
          }
        },
        {
          headerName: '状态',
          field: 'status',
          cellStyle: {
            padding: '8px'
          }
        },
        {
          headerName: '描述',
          field: 'detail',
          cellStyle: {
            padding: '8px'
          }
        },
        {
          headerName: '操作',
          minWidth: 150,
          cellRendererParams: {
            history: this.props.history,
            refreshCustomers: this.props.refreshMaintenances
          },
          cellRendererFramework: MaintenanceActions,
          cellStyle: {
            padding: '8px',
            'text-align': 'center'
          }
        }
      ]
    }
  }

  render () {
    const { columnDefs } = this.state
    const { rowData, current, pageSize, total, refreshMaintenances } = this.props
    return (
      <div className={styles['main']}>
        <AgGrid {...{
          columnDefs,
          rowData
        }} />
        <Pagination current={current} pageSize={pageSize} total={total} onChange={refreshMaintenances} />
      </div>
    )
  }
}

export default Maintenance
